#ifndef __STATICDATA_IFILEVISITORITERATOR_H__
#define __STATICDATA_IFILEVISITORITERATOR_H__

#include <string>
#include "ISimpleTableFrame.h"

class AtomString;

class IFileVisitorIterator
{
public:
	virtual ~IFileVisitorIterator(void){};

	virtual	bool	End() = 0;
	virtual	void	Get( std::string& strContent,const std::string& strField ) = 0;
	virtual	int		Get( const std::string& strField ) = 0;
	virtual	double	GetD( const std::string& strField ) = 0;
	virtual	long	GetL( const std::string& strField ) = 0;
	virtual bool	Has( const std::string& strField ) = 0;

	virtual	void	Get( std::string& strContent,const AtomString& strField ) = 0;
	virtual	int		Get( const AtomString& strField ) = 0;
	virtual	double	GetD( const AtomString& strField ) = 0;
	virtual	long	GetL( const AtomString& strField ) = 0;
	virtual bool	Has( const AtomString& strField ) = 0;

	///
	virtual void	Get( std::string& strContent,int i ) = 0;
	virtual	int		Get( int i ) = 0;
	virtual	double	GetD( int i ) = 0;

	virtual	void	Reset( int nRowBegin ) = 0;

	///
	virtual ISimpleTableFrame&	TableFrame() = 0;
};
#endif	//__STATICDATA_IFILEVISITORITERATOR_H__
